package com.shujia.java.day19.demo4;
/**
* @Description: MyRunnable 网络购票100张票
* @Author: 王火火
* @Date: 2019/8/22 10:53
*/
public class MyRunnable implements Runnable{
    int sum=100;
    @Override
    public void run() {
        while (true){
            if(sum>0){
                //看为网络延迟
                //最差情况 第100张票买了3次
                /**
                 * t1 t2 t3
                 * t1 先进来之后 sum=100  t1开始sleep之后 sum-- 还没走 资源被t2抢走了
                 * t2 进来了 sum--还没走 sum=100  t2开始sleep之后 t1还没醒 还剩t3
                 * t3 sum=100
                 */


                //最差情况 输出到-1 sum最差情况为-2
                /**
                 * t1 t2 t3
                 * t1在输出2只有进来了 sum=1
                 * t1 进来他sleep sum=1  t2 进来他sleep sum=1 t3 进来他sleep sum=1
                 *
                 * t1醒了 输出1 sum=0  ,
                 * t2醒了 sum=0  输出0 sum=-1,
                 * t3 醒了 sum=-1 输出-1 sum=-2
                 *
                 */
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread().getName()+"买了第"+(sum--)+"张票");


            }
        }
    }
}
